package com.gestion.modelo.dominio;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

/**
 * @author Mauri@<itsoluciones.com.ar>
 */
public class Pedido {

    private long id_pedido;
    private Cliente cliente;
    private Date fecha;
    private float total;
    private List<ItemPedido> itemPedido;
    private String direccion_entrega;
    private EstadosPedido estado;
    private Date fecha_entrega;
    private Boolean pagado;
    private Boolean entregar;
    private Usuario usuario;

    public Boolean getEntregar() {
        return entregar;
    }

    public void setEntregar(Boolean entregar) {
        this.entregar = entregar;
    }
    
    public Date getFecha_entrega() {
        return fecha_entrega;
    }

    public void setFecha_entrega(Date fecha_entrega) {
        fecha= new Date();
        this.fecha_entrega = fecha_entrega;
    }
    private Pago pago;
    private TipoPago tipopago;

    public Pedido() {
    }

    public Pedido(long id_pedido, Cliente cliente, Date fecha, float total,
            List<ItemPedido> itemPedidos, String direccion_entrega, EstadosPedido estado, Date fecha_entrega,
            Pago pago, TipoPago tipopago, Boolean pagado,Boolean entregar, Usuario usuario) {
        this.id_pedido = id_pedido;
        this.cliente = cliente;
        this.fecha = fecha;
        this.total = total;
        this.itemPedido = itemPedidos;
        this.direccion_entrega = direccion_entrega;
        this.estado = estado;
        this.fecha_entrega = fecha_entrega;
        this.pago = pago;
        this.tipopago = tipopago;
        this.pagado = pagado;
        this.entregar=entregar;
        this.usuario= usuario;
    }

    public String getDireccion_Entrega() {
        return direccion_entrega;
    }

    public void setDireccion_Entrega(String direccion_entrega) {
        this.direccion_entrega = direccion_entrega;
    }

    public long getId_pedido() {
        return id_pedido;
    }

    public void setId_pedido(long id_pedido) {
        this.id_pedido = id_pedido;
    }

  
    public float getTotal() {
        return total;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public Date getFecha() {
        return fecha;
    }

    public TipoPago getTipopago() {
        return tipopago;
    }

    public void setTipopago(TipoPago tipopago) {
        this.tipopago = tipopago;
    }

    public String fechaStringValue() {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        return df.format(fecha);
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public long getId() {
        return id_pedido;
    }

    public void setId(long id) {
        this.id_pedido = id;
    }

    public void setTotal(float total) {
        this.total = total;
    }

    public List<ItemPedido> getItemPedidos() {
        return itemPedido;
    }

    public void setItemPedidos(List<ItemPedido> itemPedidos) {
        this.itemPedido = itemPedidos;
    }

    public void addItemPedido(ItemPedido ip) {
        if (itemPedido == null) {
            itemPedido = new ArrayList<ItemPedido>();
        }
        itemPedido.add(ip);
    }

    public Pago getPago() {
        return pago;
    }

    public void setPago(Pago pago) {
        this.pago = pago;
    }

    public EstadosPedido getEstado() {
        return estado;
    }

    public void setEstado(EstadosPedido estado) {
        this.estado = estado;
    }

    public java.sql.Date datetoSqldate(Date date) {
        if (date == null) {
            return null;
        }
        java.util.Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        java.sql.Date sqlDate = new java.sql.Date(cal.getTime().getTime()); // your sql date
  /*    * System.out.println("utilDate:" + utilDate);
         * System.out.println("sqlDate:" + sqlDate);
         */
        return sqlDate;
    }

    public Boolean getPagado() {
        return pagado;
    }

    public void setPagado(Boolean pagado) {
        this.pagado = pagado;
    }

    public String getDireccion_entrega() {
        return direccion_entrega;
    }

    public void setDireccion_entrega(String direccion_entrega) {
        this.direccion_entrega = direccion_entrega;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    
    
    //<editor-fold defaultstate="collapsed" desc="Para Probar que recupera de la BD">

    public void salida() {
        String s = null;
        System.out.println("" + fecha);
        System.out.println(id_pedido);
        System.out.println(total);
        System.out.println(itemPedido.size());
    }
    //</editor-fold>
}
